<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery的其他静态方法说明</title>
    <script src="../../js/jquery-3.4.1.js"></script>
</head>
<body>
<button onclick="relieveHoldReady()">点击执行jquery入口函数</button>
</body>
<script>

    let str1 = '  test  ';
    //这个方法传入true会使jquery的入口函数暂停执行, 等待事件触发给这个函数传入false才会使入口函数执行.
    $.holdReady(true);
    $(() => {
        trimMethod();
        isWindowMethod();
    });

    /**
     * 功能:
     *      该方法被事件触发接触入口函数不执行, 使入口函数开始执行.
     * 说明:
     *      1. $.holdReady()方法传入true使入口函数暂停, 传入false使入口函数开始执行.
     */
    function relieveHoldReady() {
        $.holdReady(false);
    }

    /**
     * 功能:
     *      使用trim函数来取出字符串左右两边的无用字符串.
     * 输出:
     * ```
     *   test   8
     * test 4
     * ```
     * 说明:
     *      1. trim函数会取出字符串左右两边的无效空格.
     */
    function trimMethod() {
        let str2 = $.trim(str1);
        console.log(str1, str1.length);
        console.log(str2, str2.length);
    }

    /**
     * 功能:
     *      验证当前对象是否是窗口对象;
     * 输出:
     * ```
     * arr1 is window: false
     * arr2 is window: false
     * obj is window: false
     * func is window: false
     * win is window: true
     * ```
     * 说明:
     *      1. window对象时js内置的对象, 表示当前页面的对象.
     */
    function isWindowMethod() {
        //数组
        let arr1 = [1, 2, 3];
        //伪数组
        let arr2 = {'name': 's1', 'age': 1, length: 2};
        //对象
        let obj = {'name': 's1', 'age': 1};
        //函数
        let func = () => {alert(1);};
        let win = window;

        console.log("arr1 is window: " + $.isWindow(arr1));
        console.log("arr2 is window: " + $.isWindow(arr2));
        console.log("obj is window: " + $.isWindow(obj));
        console.log("func is window: " + $.isWindow(func));
        console.log("win is window: " + $.isWindow(win));
    }

</script>
</html>